source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-321.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 0.626.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
7358 7594 1016 5626 5 6410 7758 5040 8330 10 7316 1952 5184 73 21 6824
17 18 19 20 21 22 23 24 25
4475 2573 3911 1664 5785 4608 2 1057 289
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("fecha_cnt", "tmax", "tmin", "precip", "nevada", "prof_nieve")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
fecha_cnt tmax tmin precip nevada prof_nieve
[1,] -0.5344294 -0.7566908 -0.7124502 0.5189111 0.016487236 0.060354946
[2,] 0.7129420 -0.1602095 -0.1604176 0.3367536 0.002902128 -0.003308014
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
prof_nieve fecha_cnt tmax nevada tmin precip
0.9642396 0.9565735 0.9515171 0.9409413 0.9373270 0.9238190
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:148.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.497 Mean :200.2 Mean : 98.87 Mean : 16.25
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.0000000 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0.0000000 Median : 0.0000 Median :40.82 Median : -3.4500
Mean :0.0001897 Mean : 0.3974 Mean :39.66 Mean : -3.4350
3rd Qu.:0.0000000 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :3.0000000 Max. :892.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.5
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:148.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.497 Mean :200.2 Mean : 98.88 Mean : 16.25
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0 Median : 0.0000 Median :40.82 Median : -3.4501
Mean :0 Mean : 0.3973 Mean :39.66 Mean : -3.4351
3rd Qu.:0 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :0 Max. :892.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.5
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.:149.0 1st Qu.: 53.0 1st Qu.: 3.00 1st Qu.:0
Median : 6.000 Median :198.0 Median : 98.0 Median : 10.00 Median :0
Mean : 6.498 Mean :200.3 Mean : 98.9 Mean : 16.24 Mean :0
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.0 3rd Qu.: 22.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median : 0.0000 Median :40.82 Median : -3.4500 Median : 247.0
Mean : 0.2657 Mean :39.66 Mean : -3.4350 Mean : 418.1
3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :390.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.:2.000 1st Qu.: 10.00 1st Qu.:-44.00 1st Qu.: 36.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 52.00 Median :0
Mean :2.333 Mean : 24.19 Mean :-31.95 Mean : 61.29 Mean :0
3rd Qu.:3.000 3rd Qu.: 29.00 3rd Qu.:-24.00 3rd Qu.: 78.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :415.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:503.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :592.0 Median :40.78 Median :-4.01 Median :1894
Mean :594.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:657.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-53.0 Min. :-121 Min. : 0.00 Min. :0
1st Qu.: 4.0 1st Qu.:149.0 1st Qu.: 53 1st Qu.: 3.00 1st Qu.:0
Median : 6.0 Median :198.0 Median : 98 Median : 10.00 Median :0
Mean : 6.5 Mean :200.4 Mean : 99 Mean : 16.21 Mean :0
3rd Qu.: 9.0 3rd Qu.:255.0 3rd Qu.: 148 3rd Qu.: 22.00 3rd Qu.:0
Max. :12.0 Max. :403.0 Max. : 254 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1
1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42
Median : 0.0000 Median :40.82 Median : -3.4500 Median : 247
Mean : 0.1049 Mean :39.66 Mean : -3.4346 Mean : 417
3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656
Max. :104.0000 Max. :43.57 Max. : 4.2156 Max. :2535
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 2.00
1st Qu.: 1.000 1st Qu.: 16.00 1st Qu.:-35.00 1st Qu.: 29.00
Median : 2.000 Median : 34.00 Median :-23.00 Median : 43.00
Mean : 3.685 Mean : 36.15 Mean :-22.38 Mean : 47.01
3rd Qu.: 4.000 3rd Qu.: 49.00 3rd Qu.: -8.00 3rd Qu.: 67.00
Max. :12.000 Max. : 99.00 Max. : 28.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. :106.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:0 1st Qu.:144.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :0 Median :197.0 Median :40.78 Median :-4.01 Median :1894
Mean :0 Mean :209.1 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:0 3rd Qu.:259.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :0 Max. :390.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.:2.000 1st Qu.: 10.00 1st Qu.:-44.00 1st Qu.: 36.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 52.00 Median :0
Mean :2.333 Mean : 24.19 Mean :-31.95 Mean : 61.29 Mean :0
3rd Qu.:3.000 3rd Qu.: 29.00 3rd Qu.:-24.00 3rd Qu.: 78.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :415.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:503.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :592.0 Median :40.78 Median :-4.01 Median :1894
Mean :594.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:657.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :126.0 Min. : 31.0 Min. : 0.00 Min. :0
1st Qu.: 6.000 1st Qu.:226.0 1st Qu.:122.0 1st Qu.: 1.00 1st Qu.:0
Median : 7.000 Median :257.0 Median :149.0 Median : 6.00 Median :0
Mean : 7.064 Mean :258.7 Mean :149.6 Mean : 9.89 Mean :0
3rd Qu.: 9.000 3rd Qu.:290.0 3rd Qu.:177.0 3rd Qu.:16.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :56.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.: -5.8792 1st Qu.: 32.0
Median : 0.00000 Median :40.30 Median : -3.6781 Median : 90.0
Mean : 0.00611 Mean :38.75 Mean : -4.0707 Mean : 304.3
3rd Qu.: 0.00000 3rd Qu.:41.67 3rd Qu.: 0.3664 3rd Qu.: 541.0
Max. :36.00000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. :-53.0 Min. :-121.00 Min. : 0.00 Min. :0
1st Qu.: 2.00 1st Qu.:119.0 1st Qu.: 26.00 1st Qu.: 6.00 1st Qu.:0
Median : 4.00 Median :151.0 Median : 55.00 Median : 14.00 Median :0
Mean : 5.98 Mean :147.3 Mean : 52.77 Mean : 21.19 Mean :0
3rd Qu.:11.00 3rd Qu.:178.0 3rd Qu.: 81.00 3rd Qu.: 30.00 3rd Qu.:0
Max. :12.00 Max. :336.0 Max. : 219.00 Max. :129.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:39.49 1st Qu.: -5.3456 1st Qu.: 64.0
Median : 0.0000 Median :41.15 Median : -2.7331 Median : 412.0
Mean : 0.1907 Mean :40.49 Mean : -2.8347 Mean : 520.1
3rd Qu.: 0.0000 3rd Qu.:42.36 3rd Qu.: 0.4942 3rd Qu.: 775.0
Max. :104.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 2.00
1st Qu.: 1.000 1st Qu.: 16.00 1st Qu.:-35.00 1st Qu.: 29.00
Median : 2.000 Median : 34.00 Median :-23.00 Median : 43.00
Mean : 3.685 Mean : 36.15 Mean :-22.38 Mean : 47.01
3rd Qu.: 4.000 3rd Qu.: 49.00 3rd Qu.: -8.00 3rd Qu.: 67.00
Max. :12.000 Max. : 99.00 Max. : 28.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. :106.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:0 1st Qu.:144.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :0 Median :197.0 Median :40.78 Median :-4.01 Median :1894
Mean :0 Mean :209.1 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:0 3rd Qu.:259.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :0 Max. :390.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.:2.000 1st Qu.: 10.00 1st Qu.:-44.00 1st Qu.: 36.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 52.00 Median :0
Mean :2.333 Mean : 24.19 Mean :-31.95 Mean : 61.29 Mean :0
3rd Qu.:3.000 3rd Qu.: 29.00 3rd Qu.:-24.00 3rd Qu.: 78.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :415.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:503.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :592.0 Median :40.78 Median :-4.01 Median :1894
Mean :594.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:657.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-102.0 Min. :116.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.0 1st Qu.: 49.0 1st Qu.:132.0 1st Qu.:0
Median :10.000 Median :132.0 Median : 71.0 Median :144.0 Median :0
Mean : 7.014 Mean :136.6 Mean : 72.2 Mean :157.1 Mean :0
3rd Qu.:11.000 3rd Qu.:156.0 3rd Qu.: 94.0 3rd Qu.:166.0 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. : 223.0 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 64.0
Median : 0.0000 Median :42.43 Median : -8.411 Median : 261.0
Mean : 0.9031 Mean :41.24 Mean : -6.313 Mean : 445.1
3rd Qu.: 0.0000 3rd Qu.:42.89 3rd Qu.: -3.819 3rd Qu.: 370.0
Max. :81.0000 Max. :43.49 Max. : 2.827 Max. :2535.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :126.0 Min. : 31.0 Min. : 0.00 Min. :0
1st Qu.: 6.000 1st Qu.:226.0 1st Qu.:122.0 1st Qu.: 1.00 1st Qu.:0
Median : 7.000 Median :257.0 Median :149.0 Median : 6.00 Median :0
Mean : 7.064 Mean :258.7 Mean :149.6 Mean : 9.89 Mean :0
3rd Qu.: 9.000 3rd Qu.:290.0 3rd Qu.:177.0 3rd Qu.:16.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :56.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.: -5.8792 1st Qu.: 32.0
Median : 0.00000 Median :40.30 Median : -3.6781 Median : 90.0
Mean : 0.00611 Mean :38.75 Mean : -4.0707 Mean : 304.3
3rd Qu.: 0.00000 3rd Qu.:41.67 3rd Qu.: 0.3664 3rd Qu.: 541.0
Max. :36.00000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00 Min. :0
1st Qu.:1.000 1st Qu.:118.2 1st Qu.: 22.00 1st Qu.: 5.00 1st Qu.:0
Median :3.000 Median :150.0 Median : 50.00 Median : 12.00 Median :0
Mean :2.611 Mean :144.6 Mean : 45.86 Mean : 17.94 Mean :0
3rd Qu.:4.000 3rd Qu.:174.0 3rd Qu.: 74.00 3rd Qu.: 24.00 3rd Qu.:0
Max. :7.000 Max. :267.0 Max. : 172.00 Max. :120.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:39.48 1st Qu.: -5.2892 1st Qu.: 64.0
Median : 0.0000 Median :41.11 Median : -2.7331 Median : 412.0
Mean : 0.1968 Mean :40.42 Mean : -2.8230 Mean : 515.9
3rd Qu.: 0.0000 3rd Qu.:42.29 3rd Qu.: 0.4942 3rd Qu.: 750.0
Max. :100.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 4.00 Min. : -3.0 Min. :-56.0 Min. : 37.00 Min. :0
1st Qu.: 9.00 1st Qu.:164.0 1st Qu.: 91.0 1st Qu.: 51.00 1st Qu.:0
Median :10.00 Median :193.0 Median :114.0 Median : 63.00 Median :0
Mean :10.01 Mean :190.2 Mean :112.6 Mean : 67.72 Mean :0
3rd Qu.:11.00 3rd Qu.:221.0 3rd Qu.:137.0 3rd Qu.: 80.00 3rd Qu.:0
Max. :12.00 Max. :336.0 Max. :219.0 Max. :129.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:39.85 1st Qu.: -6.3500 1st Qu.: 27.1
Median : 0.0000 Median :42.24 Median : -3.8189 Median : 87.0
Mean : 0.2187 Mean :40.98 Mean : -3.7339 Mean : 247.3
3rd Qu.: 0.0000 3rd Qu.:43.31 3rd Qu.: 0.3264 3rd Qu.: 261.0
Max. :104.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 2.00
1st Qu.: 1.000 1st Qu.: 16.00 1st Qu.:-35.00 1st Qu.: 29.00
Median : 2.000 Median : 34.00 Median :-23.00 Median : 43.00
Mean : 3.685 Mean : 36.15 Mean :-22.38 Mean : 47.01
3rd Qu.: 4.000 3rd Qu.: 49.00 3rd Qu.: -8.00 3rd Qu.: 67.00
Max. :12.000 Max. : 99.00 Max. : 28.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. :106.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:0 1st Qu.:144.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :0 Median :197.0 Median :40.78 Median :-4.01 Median :1894
Mean :0 Mean :209.1 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:0 3rd Qu.:259.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :0 Max. :390.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.:2.000 1st Qu.: 10.00 1st Qu.:-44.00 1st Qu.: 36.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 52.00 Median :0
Mean :2.333 Mean : 24.19 Mean :-31.95 Mean : 61.29 Mean :0
3rd Qu.:3.000 3rd Qu.: 29.00 3rd Qu.:-24.00 3rd Qu.: 78.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :415.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:503.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :592.0 Median :40.78 Median :-4.01 Median :1894
Mean :594.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:657.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 7.00 Min. :-24.0 Min. :-110.00 Min. : 0.00 Min. :0
1st Qu.:11.00 1st Qu.:114.0 1st Qu.: 28.00 1st Qu.: 6.00 1st Qu.:0
Median :11.00 Median :148.0 Median : 57.00 Median :16.00 Median :0
Mean :11.13 Mean :144.4 Mean : 54.16 Mean :18.55 Mean :0
3rd Qu.:12.00 3rd Qu.:177.0 3rd Qu.: 82.00 3rd Qu.:28.00 3rd Qu.:0
Max. :12.00 Max. :260.0 Max. : 165.00 Max. :85.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.05 Min. :-17.7550 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:39.85 1st Qu.: -4.8500 1st Qu.: 85.0
Median : 0.0000 Median :41.15 Median : -2.6544 Median : 513.0
Mean : 0.1752 Mean :40.53 Mean : -2.6949 Mean : 576.1
3rd Qu.: 0.0000 3rd Qu.:42.29 3rd Qu.: 0.5706 3rd Qu.: 790.0
Max. :103.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-102.0 Min. :116.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.0 1st Qu.: 49.0 1st Qu.:132.0 1st Qu.:0
Median :10.000 Median :132.0 Median : 71.0 Median :144.0 Median :0
Mean : 7.014 Mean :136.6 Mean : 72.2 Mean :157.1 Mean :0
3rd Qu.:11.000 3rd Qu.:156.0 3rd Qu.: 94.0 3rd Qu.:166.0 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. : 223.0 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 64.0
Median : 0.0000 Median :42.43 Median : -8.411 Median : 261.0
Mean : 0.9031 Mean :41.24 Mean : -6.313 Mean : 445.1
3rd Qu.: 0.0000 3rd Qu.:42.89 3rd Qu.: -3.819 3rd Qu.: 370.0
Max. :81.0000 Max. :43.49 Max. : 2.827 Max. :2535.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)